#include "Node_Base.h"

void Node_Base::setNode(std::ifstream& fin)
{
	m_id = 0;
	int quantity = 0;
	fin >> m_id;
	fin>> quantity;
	m_Coord.resize(quantity);
	for (int i = 0; i < quantity; i++)
	{
		fin >> m_Coord[i];
	}
}

void Node_Base::setNode2(std::ifstream& fin)
{
	setNode(fin);
	int quantity = 0;
	fin >> quantity;
	m_DOF.resize(quantity);
	m_parameter.resize(quantity);
	m_Sw.resize(m_Coord.size());
	for (int i = 0; i < quantity; i++)
	{
		fin >> m_DOF[i];
	}
	for (int i = 0; i < quantity; i++)
	{
		fin >> m_parameter[i];
	}
	for (int i = 0; i < m_Coord.size(); i++)
	{
		fin >> m_Sw[i];
	}
}

void Node_Base::coutNode()
{
	std::cout << m_id;
	for (int i = 0; i < m_Coord.size(); i++)
	{
		std::cout << " " << m_Coord[i];
	}
	std::cout << std::endl;
}

void Node_Base::foutNode(std::ofstream& fout)
{
	fout << std::left << std::setw(20) << m_id;
	fout << std::left << std::setw(20) << m_Coord.size();
	for (int i = 0; i < m_Coord.size(); i++)
	{
		fout << std::left << std::setw(20) << m_Coord[i];
	}
	fout << std::left << std::setw(20) << m_DOF.size();
	for (int i = 0; i < m_DOF.size(); i++)
	{
		fout << std::left << std::setw(20) << m_DOF[i];
	}
	for (int i = 0; i < m_DOF.size(); i++)
	{
		fout << std::left << std::setw(20) << m_parameter[i];
	}
	if (!m_Sw.empty())
	{
		for (int i = 0; i < m_Sw.size(); i++)
		{
			fout << std::left << std::setw(20) << m_Sw[i];
		}
	}
	fout<<std::endl;
}
